//当引入此文件时就会执行，
// 常用常量配置
import store from '@/store'
import dictionary from "@/utils/dictionary";

if (Object.keys(store.state.dictQuery).length == 0) {
    store.commit('SET_DICT_QUERY', dictionary); //使用本地数据字典
}

// 根据字典code 值，返回相关数组
export function getDictData(code, parentCode) {
    let returnObj = []
    let dict = store.state.dictQuery
    if (dict.length > 0) {
        dict.forEach((v) => {
            if (v.code == code) {
                v.data.forEach((j) => {
                    if (j.parentCode == parentCode || !parentCode) {
                        let obj = {
                            label: j.itemText,
                            value: j.itemCode
                        }
                        returnObj.push(obj)
                    }
                })
            }
        })
    }
    return returnObj
}
// 根据字典code 值,生成级联数组(数组格式为vant的picker组件使用格式)
function cascadeArr(code) { 
    let dict = store.state.dictQuery;
    if (dict.length == 0) {
        return [];
    }
    let filterArr = dict.filter(item => item.code == code);
    if (filterArr.length == 0) {
        return [];
    }
    let data = filterArr[0].data;

    function generate(parentCode = '-1') {
        let resArr = [];
        let arr2 = data.filter(item => item.parentCode == parentCode);

        var flag = arr2.some(j => { //同一层级如果一个有children，那么这一层所有的都必须有children，这是vant的格式决定的
            let arr3 = data.filter(item => item.parentCode == j.itemCode);
            return arr3.length != 0;
        })
        arr2.forEach(j => {
            if (!flag) {
                resArr.push({
                    text: j.itemText,
                })
            } else {
                resArr.push({
                    text: j.itemText,
                    children: generate(j.itemCode)
                })
            }
        })

        return resArr;
    }
    return generate()
}

// 性别
export const gender = getDictData('Gender', '-1')

// 证件类型
export const identTp = [{
    label: '居民身份证',
    value: '01'
}]

// 民族
export const raceCd = getDictData('RaceCd', '-1')

// 客户类型1
export const cstTp1 = getDictData('CstTp1', '-1')

// 客户类型2 （所有下级集合）
export const cstTp2 = getDictData('CstTp1')

// 健康状况
export const hltSt = getDictData('HltSt', -1)

// 婚姻状况
export const mrrgSt = getDictData('MrrgSt', -1)

// 劳动能力
export const lbrSt = getDictData('LbrSt', -1)

// 居住年限
export const rsdnYrTm = getDictData('RsdnYrTm', -1)

// 居住状况
export const rsdnSt = getDictData('RsdnSt', -1)

// 最高学历
export const highEdctDgrCd = getDictData('HighEdctDgrCd', -1)

// 最高学位
export const highDgrCd = getDictData('HighDgrCd', -1)

// 综合评价
export const cmprhEvlInd = getDictData('CmprhEvlInd', -1)

// 家庭成员关系
export const famMbrRltnpCd = getDictData('FamMbrRltnpCd', -1)

// 担任职务
export const dutyCd = getDictData('DutyCd', -1)

//产品市场需求情况 
export const pdMktRqmSt = getDictData('PdMktRqmSt', -1)

// 借款人还款意愿
export const repyWillTp = getDictData('RepyWillTp', -1)

// 职业代码
export const ocpCd = getDictData('OcpCd', -1)

// 职称
export const profTtlCd = getDictData('ProfTtlCd', -1)

// 从业年限
export const wrkYrTm = getDictData('WrkYrTm', -1)

// 还款方式
export const PayMethod = getDictData('PayMethod', -1)

// 客户群体
export const custGroup = getDictData("WrkYrTm", -1)

// 借款用途，仅包含经营和消费
export const LoanUse = getDictData('LoanUse1', -1)
export const LoanUse_columns = cascadeArr('LoanUse1')
// 借款用途，仅包含经营
export const LoanUse2 = getDictData('LoanUse2', -1)
export const LoanUse_columns2 = cascadeArr('LoanUse2')
//就业状况
export const empySt = getDictData('EmpySt', -1)
//单位性质
export const unitCharTp = getDictData('UnitCharTp', -1)